package com.tangyuan.userauth.controller;

import com.tangyuan.common.result.Result;
import com.tangyuan.dto.*;
import com.tangyuan.userauth.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/loginUser")
public class UserController {
    @Autowired
    private UserService userService;

    // 用户注册获取验证码接口
    @GetMapping("/regist/getcode")
    public Result userGetCodeRegis(String mobile) {
        return userService.userGetCodeRegis(mobile);

    }

    // 用户注册接口
    @PostMapping("/regist")
    public Result userRegis(@RequestBody UserRegistDto userRegistDto) {
        return userService.userRegis(userRegistDto);

    }

    // 用户密码登录接口
    @PostMapping("/login/password")
    public Result userPwdLogin(@RequestBody UserPwdLoginDto userPwdLoginDto) {
        return userService.userPwdLogin(userPwdLoginDto);
    }

    // 用户登录获取验证码
    @GetMapping("/login/getcode")
    public Result getCodeLogin(String mobile) {
        return userService.getCodeLogin(mobile);
    }

    // 用户验证码登录接口
    @PostMapping("/login/code")
    public Result userCodeLogin(@RequestBody UserCodeLoginDto userCodeLoginDto) {
        return userService.userCodeLogin(userCodeLoginDto);
    }


    // 发送重设密码验证码
    @GetMapping("/forget/getcode")
    public Result userGetCodeResetPwd(String mobile) {
        return userService.userGetCodeResetPwd(mobile);

    }

    // 重新设置密码接口
    @PostMapping("/forget/resetPwd")
    public Result userResetPwd(@RequestBody UserForgetDto userForgetDto) {
        return userService.userResetPassWord(userForgetDto);
    }

    // 用户退出登录
    @GetMapping("/signOut")
    public Result userSignOut(@RequestHeader(name = "Authorization", required = false) String token) {
        return userService.userSignOut(token);
    }

    // 用户微信登录  查看用户是否需要绑定手机 不需要直接登录成功
    @GetMapping("/userWXLogin")
    public Result userWXLogin(String openId) {
        return userService.userWXLogin(openId);
    }
    // 用户微信登录  查看用户是否需要绑定手机 不需要直接登录成功 IOS的openId不是实际的openId，所以单独接口
    @GetMapping("/userIosWXLogin")
    public Result userIosWXLogin(String openId) {
        return userService.userIosWXLogin(openId);
    }

    // 用户微信登录 绑定手机获取验证码
    @GetMapping("/userWXLoginGetCode")
    public Result userWXLoginGetCode(String mobile) {
        return userService.userWXLoginGetCode(mobile);
    }

    // 用户微信登录 绑定手机
    @PostMapping("/userWXLoginBindMobile")
    public Result userWXLoginBindMobile(@RequestBody UserLoginDto userLoginDto) {
        return userService.userWXLoginBindMobile(userLoginDto);
    }

    // IOS用户微信登录 绑定手机 IOS的openId不是实际的openId，所以单独接口
    @PostMapping("/userIosWXLoginBindMobile")
    public Result userIosWXLoginBindMobile(@RequestBody UserLoginDto userLoginDto) {
        return userService.userIosWXLoginBindMobile(userLoginDto);
    }

    // 用户苹果登录 查看是否需要绑定手机 不需要绑定手机直接登录
    @GetMapping("/userIOSLogin")
    public Result userIOSLogin(String jwt) {
        return userService.userIOSLogin(jwt);
    }

    // 用户苹果登录 绑定手机获取验证码
    @GetMapping("/userIOSBindGetCode")
    public Result userIOSBindGetCode(String mobile) {
        return userService.userIOSBindGetCode(mobile);
    }

    // 用户苹果登录 绑定手机 并登录
    @PostMapping("/userIOSBind")
    public Result userIOSBind(@RequestBody UserLoginDto userLoginDto) {
        return userService.userIOSBind(userLoginDto);
    }


}
